/*
 PureMVC - Copyright(c) 2006-08 Futurescale, Inc., Some rights reserved.
 Your reuse is governed by the Creative Commons Attribution 3.0 United States License
*/
package org.puremvc.as3.interfaces
{
	public interface IView 
	{
		/**
		 * 注册观察者到View中
		 * @param	notificationName 通知的名称
		 * @param	observer 观察者
		 */
		function registerObserver( notificationName:String, observer:IObserver ) : void;
		/**
		 * 从View中移除观察者
		 * @param	notificationName 通知的名称
		 * @param	notifyContext 观察者模式中被观察的对象
		 */
		function removeObserver( notificationName:String, notifyContext:Object ):void;
		/**
		 * 观察者模式发布消息给被观察者
		 * @param	note 
		 */
		function notifyObservers( note:INotification ) : void;
		/**
		 * 注册mediator到View中
		 * @param	mediator 视图中介者
		 */
		function registerMediator( mediator:IMediator ) : void;
		/**
		 * 获取View中的Mediator
		 * @param	mediatorName 视图中介者的名称
		 * @return
		 */
		function retrieveMediator( mediatorName:String ) : IMediator;
		/**
		 * 移除View中的Mediator
		 * @param	mediatorName 视图中介者的名称
		 * @return
		 */
		function removeMediator( mediatorName:String ) : IMediator;
		/**
		 * 判断View中是否有Mediator
		 * @param	mediatorName 视图中介者的名称
		 * @return
		 */
		function hasMediator( mediatorName:String ) : Boolean;
		
	}
	
}